<?php
class Brending extends CActiveRecord {
    
    public $id;
    public $type;
    public $typeId = 0;
    public $bgImg;
    public $butImg;
    public $butW;
    public $butH;
    public $butT;
    public $butL;
    public $url;
    
    public $oldBgImg;
    public $oldButImg;
    
    public static function model($className = __CLASS__) {
        return parent::model($className);
    }
    
    public function rules() {
        return array(
            array('bgImg', 'file', 'types'=>'png, jpg, gif', 'maxSize'=>1000000, 'allowEmpty'=>false, 'on'=>'insert'),
            array('bgImg', 'file', 'types'=>'png, jpg, gif', 'maxSize'=>1000000, 'allowEmpty'=>true, 'on'=>array('update', 'uploadBut')),
            array('butImg', 'file', 'types'=>'png, jpg, gif', 'maxSize'=>1000000, 'allowEmpty'=>false, 'on'=>'uploadBut'),
            array('butW, butH, butT, butL', 'required', 'on'=>'uploadBut', 'message'=>'{attribute} Не может быть пустым'),
            array('url', 'required', 'message'=>'{attribute} Не может быть пустым'),
            array('type, typeId, butW, butH, butT, butL', 'safe')    
        );
    }

    public function afterFind() {
        $this->oldBgImg = $this->bgImg;
        $this->oldButImg = $this->butImg; 
    }
    
    public function tableName() {
        return 'brending';
    }
    
    public function attributeLabels() {
        return array(
            'type'=>'Тип брендирования',
            'typeId'=>'Цель брендирования',
            'bgImg'=>'Беграунд страницы',
            'butImg'=>'Беграунд кнопки',
            'butW'=>'Ширина кнопки',
            'butH'=>'Высота кнопки',
            'butT'=>'Отступ top в %',
            'butL'=>'Отступ left в %',
            'url'=>'УРЛ адрес'
        );
    }
    
    protected function beforeSave() {
        if(!parent::beforeSave()) return false;
        if($this->getIsNewRecord()) {
            $brendData = Brending::model()->findByAttributes(array('type'=>$this->type, 'typeId'=>$this->typeId));
            if(!empty($brendData)) $brendData->delete();
        }   
        if(!$this->getIsNewRecord()) {
            if(!empty($this->oldButImg) && $this->oldButImg != $this->butImg && file_exists(Yii::getPathOfAlias('webroot').'/images/uploads/brending/'.$this->oldButImg)) 
                    unlink (Yii::getPathOfAlias('webroot').'/images/uploads/brending/'.$this->oldButImg);
            if(!empty($this->oldBgImg) && $this->oldBgImg != $this->bgImg && file_exists(Yii::getPathOfAlias('webroot').'/images/uploads/brending/'.$this->oldBgImg)) 
                    unlink (Yii::getPathOfAlias('webroot').'/images/uploads/brending/'.$this->oldBgImg);
        }
        return true;
    }
    
    protected function beforeDelete() {
        if(!parent::beforeDelete()) return false;
        if(!empty($this->butImg) && file_exists(Yii::getPathOfAlias('webroot').'/images/uploads/brending/'.$this->butImg)) 
            unlink(Yii::getPathOfAlias('webroot').'/images/uploads/brending/'.$this->butImg);
        if(!empty($this->bgImg) && file_exists(Yii::getPathOfAlias('webroot').'/images/uploads/brending/'.$this->bgImg)) 
            unlink(Yii::getPathOfAlias('webroot').'/images/uploads/brending/'.$this->bgImg);
        return true;
    }
    
    protected function afterSave() {
        CacheTaggedHelper::deleteByTags($this->tableName());
    }
    
    protected function afterDalete() {
        CacheTaggedHelper::deleteByTags($this->tableName());
    }
}
